package com.generalbackend.role.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.generalbackend.role.model.entity.RolePermission;
import com.generalbackend.role.model.query.RolePermissionQuery;

import java.util.List;

/**
* ClassName: RolePermissionQuery
* @Description 业务层
* @author tim.xie
* @date 2021-12-16 11:11
*/


public interface IRolePermissionService extends IService<RolePermission> {

    /**
     * 添加
     * @param rolePermission
     * @return
     */
    Boolean insert(RolePermission rolePermission);

    /**
     * 修改
     * @param rolePermission
     * @return
     */
    Boolean update(RolePermission rolePermission);

     /**
     * 根据id删除
     * @param id
     * @return
     */
    Boolean deleteById(Long id);

    /**
     * 根据id得到对象
     * @param id
     * @return
     */
    RolePermission  selectById(Long id);

    /**
    * 根据条件查询集合列表
    * @param rolePermissionQuery
    * @return
    */
    JSONObject list(RolePermissionQuery rolePermissionQuery);

    /**
     * 通过角色id删除角色权限关联数据
     * @param roleIds
     * @return
     */
    Boolean deleteRolePermissionByRoleIds(List<Long> roleIds);

    /**
     * 批量新增和删除角色权限
     * @param add
     * @param remove
     * @param roleId
     * @return
     */
    boolean permissionUpdate(String add, String remove, Long roleId);

    /**
     * 添加角色权限关联表
     * @param permissions
     * @param roleId
     * @return
     */
    boolean addRolePermission(List<String> permissions, Long roleId);

    /**
     * 根据roleId删除关联表数据
     * @param roleId
     * @return
     */
    boolean deleteByRole(Long roleId);

    /**
     * 通过角色id获取权限信息
     * @param roleId
     * @return
     */
    List<RolePermission> getByRoleId(Long roleId);

}
